using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("TemporaryAccountManager")]
	public class TemporaryAccountManager : MonoClass
	{
		[Attribute38("TemporaryAccountManager.TemporaryAccountData")]
		public class TemporaryAccountData : MonoClass
		{
			[Attribute38("TemporaryAccountManager.TemporaryAccountData.TemporaryAccount")]
			public class TemporaryAccount : MonoClass
			{
				public string m_temporaryAccountId => method_4("m_temporaryAccountId");

				public string m_battleTag => method_4("m_battleTag");

				public int m_regionId => method_2<int>("m_regionId");

				public string m_lastLogin => method_4("m_lastLogin");

				public bool m_isHealedUp => method_2<bool>("m_isHealedUp");

				public bool m_isMinor => method_2<bool>("m_isMinor");

				public TemporaryAccount(IntPtr address, string className)
					: base(address, className)
				{
				}

				public TemporaryAccount(IntPtr address)
					: this(address, "TemporaryAccount")
				{
				}
			}

			public int m_selectedTemporaryAccountIndex => method_2<int>("m_selectedTemporaryAccountIndex");

			public List<TemporaryAccount> m_temporaryAccounts => method_3<Class271<TemporaryAccount>>("m_temporaryAccounts")?.method_25();

			public string m_lastUpdated => method_4("m_lastUpdated");

			public TemporaryAccountData(IntPtr address, string className)
				: base(address, className)
			{
			}

			public TemporaryAccountData(IntPtr address)
				: this(address, "TemporaryAccountData")
			{
			}
		}

		public enum HealUpReason
		{
			UNKNOWN,
			FRIENDS_LIST,
			GAME_MENU,
			REAL_MONEY,
			LOCKED_PACK,
			WIN_GAME,
			CRAFT_CARD,
			OPEN_PACK
		}

		public static int NO_TEMPORARY_ACCOUNT_SELECTED => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "TemporaryAccountManager", "NO_TEMPORARY_ACCOUNT_SELECTED");

		public static string TEMPORARY_ACCOUNT_DATA_CRYPTO_KEY => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "TemporaryAccountManager", "TEMPORARY_ACCOUNT_DATA_CRYPTO_KEY");

		public static string TEMPORARY_ACCOUNT_DATA_CLOUD_KEY => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "TemporaryAccountManager", "TEMPORARY_ACCOUNT_DATA_CLOUD_KEY");

		public static TemporaryAccountManager s_Instance => MonoClass.smethod_7<TemporaryAccountManager>(TritonHs.MainAssemblyPath, "", "TemporaryAccountManager", "s_Instance");

		public TemporaryAccountData m_temporaryAccountData => method_3<TemporaryAccountData>("m_temporaryAccountData");

		public bool m_isTemporaryAccountDataLoaded => method_2<bool>("m_isTemporaryAccountDataLoaded");

		public string m_createdTemporaryAccountId => method_4("m_createdTemporaryAccountId");

		public TemporaryAccountData.TemporaryAccount m_createdTemporaryAccount => method_3<TemporaryAccountData.TemporaryAccount>("m_createdTemporaryAccount");

		public TemporaryAccountSignUpPopUp m_signUpPopUp => method_3<TemporaryAccountSignUpPopUp>("m_signUpPopUp");

		public bool m_isSignUpPopUpLoading => method_2<bool>("m_isSignUpPopUpLoading");

		public string m_signUpHeader => method_4("m_signUpHeader");

		public string m_signUpBody => method_4("m_signUpBody");

		public HealUpReason m_signUpReason => method_2<HealUpReason>("m_signUpReason");

		public SwitchAccountMenu m_switchAccountMenu => method_3<SwitchAccountMenu>("m_switchAccountMenu");

		public bool m_isSwitchAccountMenuLoading => method_2<bool>("m_isSwitchAccountMenuLoading");

		public bool m_disableSwitchAccountMenuInputBlocker => method_2<bool>("m_disableSwitchAccountMenuInputBlocker");

		public bool m_handledDisconnect => method_2<bool>("m_handledDisconnect");

		public bool m_handledHealUpError => method_2<bool>("m_handledHealUpError");

		public ulong m_healUpTemporaryAccountGameAccountId => method_2<ulong>("m_healUpTemporaryAccountGameAccountId");

		public int m_lastLoginSelectedTemporaryAccountIndex => method_2<int>("m_lastLoginSelectedTemporaryAccountIndex");

		public TemporaryAccountManager(IntPtr address, string className)
			: base(address, className)
		{
		}

		public TemporaryAccountManager(IntPtr address)
			: this(address, "TemporaryAccountManager")
		{
		}

		public static bool IsTemporaryAccount()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "TemporaryAccountManager", "IsTemporaryAccount", Array.Empty<object>());
		}

		public static TemporaryAccountManager Get()
		{
			return MonoClass.smethod_15<TemporaryAccountManager>(TritonHs.MainAssemblyPath, "", "TemporaryAccountManager", "Get", Array.Empty<object>());
		}

		public void Initialize()
		{
			method_8("Initialize");
		}

		public void WillReset()
		{
			method_8("WillReset");
		}

		public void LoadTemporaryAccountData()
		{
			method_8("LoadTemporaryAccountData");
		}

		public string GetSelectedTemporaryAccountId()
		{
			return method_13("GetSelectedTemporaryAccountId");
		}

		public void CreatedTemporaryAccount(string temporaryAccountId)
		{
			method_8("CreatedTemporaryAccount", temporaryAccountId);
		}

		public void UpdateTemporaryAccountData()
		{
			method_8("UpdateTemporaryAccountData");
		}

		public void HealUpSelectedTemporaryAccount()
		{
			method_8("HealUpSelectedTemporaryAccount");
		}

		public void SetSelectedTemporaryAccountAsMinor()
		{
			method_8("SetSelectedTemporaryAccountAsMinor");
		}

		public void DeleteTemporaryAccountData()
		{
			method_8("DeleteTemporaryAccountData");
		}

		public void SetSelectedTemporaryAccount(string temporaryAccountId)
		{
			method_8("SetSelectedTemporaryAccount", temporaryAccountId);
		}

		public void UnselectTemporaryAccount()
		{
			method_8("UnselectTemporaryAccount");
		}

		public bool IsSelectedTemporaryAccountMinor()
		{
			return method_11<bool>("IsSelectedTemporaryAccountMinor", Array.Empty<object>());
		}

		public bool ShowEarnCardEventHealUpDialog(HealUpReason reason)
		{
			return method_11<bool>("ShowEarnCardEventHealUpDialog", new object[1] { reason });
		}

		public void ShowHealUpPage(HealUpReason reason)
		{
			method_9("ShowHealUpPage", new Class276.Enum20[1] { Class276.Enum20.ValueType }, reason);
		}

		public void ShowHealUpPage()
		{
			method_9("ShowHealUpPage", new Class276.Enum20[0]);
		}

		public void OnHealUpPageClosed()
		{
			method_8("OnHealUpPageClosed");
		}

		public void HealUpComplete()
		{
			method_8("HealUpComplete");
		}

		public void ShowSwitchAccountMenu()
		{
			method_9("ShowSwitchAccountMenu", new Class276.Enum20[0]);
		}

		public ulong GetHealUpTemporaryAccountGameAccountId()
		{
			return method_11<ulong>("GetHealUpTemporaryAccountGameAccountId", Array.Empty<object>());
		}

		public int GetLastLoginSelectedTemporaryAccountIndex()
		{
			return method_11<int>("GetLastLoginSelectedTemporaryAccountIndex", Array.Empty<object>());
		}

		public void LoginTemporaryAccount(TemporaryAccountData.TemporaryAccount temporaryAccount)
		{
			method_9("LoginTemporaryAccount", new Class276.Enum20[1] { Class276.Enum20.Class }, temporaryAccount);
		}

		public void LoginTemporaryAccount(int selectedTemporaryAccountIndex)
		{
			method_9("LoginTemporaryAccount", new Class276.Enum20[1] { Class276.Enum20.I4 }, selectedTemporaryAccountIndex);
		}

		public void PrintTemporaryAccountData()
		{
			method_8("PrintTemporaryAccountData");
		}

		public void Test()
		{
			method_8("Test");
		}

		public void SortPrint()
		{
			method_8("SortPrint");
		}

		public void HealUpCompleteTest()
		{
			method_8("HealUpCompleteTest");
		}

		public string NagTimeDebugLog()
		{
			return method_13("NagTimeDebugLog");
		}

		public void ShowSignUpPopUp(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("ShowSignUpPopUp", assetRef, go, callbackData);
		}

		public void OnHealUpProcessCancelled()
		{
			method_8("OnHealUpProcessCancelled");
		}

		public void SaveTemporaryAccountData()
		{
			method_8("SaveTemporaryAccountData");
		}

		public void AddCreatedTemporaryAccount(string battleTag)
		{
			method_8("AddCreatedTemporaryAccount", battleTag);
		}

		public void OnCloudStorageInitializedAddCreatedTemporaryAccount()
		{
			method_8("OnCloudStorageInitializedAddCreatedTemporaryAccount");
		}

		public void OnCloudStorageInitializedUpdateTemporaryAccountData()
		{
			method_8("OnCloudStorageInitializedUpdateTemporaryAccountData");
		}

		public void OnCloudStorageInitializedStartShowSwitchAccountMenu()
		{
			method_8("OnCloudStorageInitializedStartShowSwitchAccountMenu");
		}

		public int ValidTemporaryAccountCount()
		{
			return method_11<int>("ValidTemporaryAccountCount", Array.Empty<object>());
		}

		public void OnSwitchAccountMenuLoaded(AssetReference assetRef, GameObject go, object callbackData)
		{
			method_8("OnSwitchAccountMenuLoaded", assetRef, go, callbackData);
		}

		public int GetTotalWins()
		{
			return method_11<int>("GetTotalWins", Array.Empty<object>());
		}

		public string Encrypt(string toEncrypt)
		{
			return method_13("Encrypt", toEncrypt);
		}

		public string Decrypt(string toDecrypt)
		{
			return method_13("Decrypt", toDecrypt);
		}
	}
}
